package com.admin.education.services.Interfaces;

import com.admin.education.common.exceptions.BadRequestException;
import com.admin.education.common.exceptions.ResourceNotFoundException;
import com.admin.education.dataTransferObject.PageResponse;
import com.admin.education.dataTransferObject.ServicesExcuteResult;
import com.admin.education.dataTransferObject.classes.ClassesTransfer;
import com.admin.education.dataTransferObject.classes.Request.CreateClassesRequest;
import com.admin.education.dataTransferObject.classes.Request.QueryClassesRequest;
import com.admin.education.dataTransferObject.classes.Request.UpdateClassesRequest;

import javax.validation.Valid;

public interface IClassService {
    ServicesExcuteResult<PageResponse<ClassesTransfer>> queryClasses(@Valid QueryClassesRequest queryClassesRequest);
    ServicesExcuteResult createClasses(@Valid CreateClassesRequest createClassesRequest) throws BadRequestException;
    ServicesExcuteResult updateClasses(long classesId, @Valid UpdateClassesRequest updateClassesRequest) throws BadRequestException, ResourceNotFoundException;
    ServicesExcuteResult updateClassesValid(long classesId) throws ResourceNotFoundException;
    ServicesExcuteResult deleteClasses(long classesId) throws ResourceNotFoundException;
    ServicesExcuteResult<ClassesTransfer> queryClassesById(long classesId) throws ResourceNotFoundException;
}
